package com.dhcc.DRGsHosp.web.controller;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.dayatang.utils.Page;
import org.openkoala.koala.commons.InvokeResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.dhcc.DRGsHosp.facade.EsIndexFacade;
import com.dhcc.DRGsHosp.facade.dto.EsIndexDTO;
import com.dhcc.DRGsHosp.infra.util.StringUtils;

/**
 * 
 * @Discription： ES服务管理   
 * @Author：huangju 
 * @ClassName: EsIndexController  
 * @Date: 2018年10月31日 上午9:17:57  
 * @Version：3.1.0 DHC.DRGs
 */
@Controller
@RequestMapping("/EsIndex")
public class EsIndexController{

	@Autowired
	EsIndexFacade esdFacade;
	
	/**
	 * 
	 *  @Discription：对ES服务信息的增加
	 *  @Author： huangju
	 *  @param esdDTO
	 *  @return
	 *  @Date:2018年10月31日上午9:19:23
	 */
	@ResponseBody
	@RequestMapping("/add")
	public InvokeResult add(EsIndexDTO esdDTO) {
		if(esdDTO!=null) {
		String salesId=StringUtils.stringToAscii(esdDTO.getSalesName()).replaceAll(",","");
		esdDTO.setSalesId(salesId);
		}
		return esdFacade.creatEsIndex(esdDTO);
		
	}
	
	/**
	 * 
	 *  @Discription：对ES服务信息的修改
	 *  @Author： huangju
	 *  @param salesId
	 *  @param esdDTO
	 *  @return
	 *  @Date:2018年10月31日上午9:20:19
	 */
	@ResponseBody
	@RequestMapping("/update")
	public InvokeResult update(String salesId,EsIndexDTO esdDTO) {
		if(esdDTO!=null) {
			esdDTO.setSalesId(salesId);
		}
		return esdFacade.updateEsIndex(esdDTO);
	}
	
	
	/**
	 *
	 *  @Discription：查询ES服务信息数据，后台分页
	 *  @Author： huangju
	 *  @param page
	 *  @param pagesize
	 *  @return
	 *  @Date:2018年10月31日上午9:20:40
	 */
	@ResponseBody
	@RequestMapping("/pageJson")
	public Page pageJson(@RequestParam int page, @RequestParam int pagesize) {
		Page<EsIndexDTO> all = esdFacade.pageQueryEsIndex(page, pagesize);
		return all;
	}
	
	/**
	 * 
	 *  @Discription：对ES服务信息的删除
	 *  @Author： huangju
	 *  @param salesIds
	 *  @return
	 *  @Date:2018年10月31日上午9:22:03
	 */
	@ResponseBody
	@RequestMapping("/delete")
	public InvokeResult remove(@RequestParam String salesIds) {
		String[] value = salesIds.split(",");
		String[] idArrs = new String[value.length];
		for (int i = 0; i < value.length; i++) {
			idArrs[i] = value[i];
		}
		return esdFacade.removeEsIndexs(idArrs);
	}
	
	
	/**
	 * 
	 *  @Discription：格式化时间并绑定
	 *  @Author： huangju
	 *  @param binder
	 *  @Date:2018年10月31日上午9:25:26
	 */
    @InitBinder    
    public void initBinder(WebDataBinder binder) {  
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");    
        dateFormat.setLenient(false);    
        //CustomDateEditor 可以换成自己定义的编辑器。
        //注册一个Date 类型的绑定器 。
        binder.setAutoGrowCollectionLimit(Integer.MAX_VALUE);
		binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
	}
    
    /**
     * 
     *  @Discription：系统使用es的业务ID是否存在
     *  @Author： huangju
     *  @param esIndex
     *  @return
     *  @Date:2018年10月31日上午9:23:10
     */
    @ResponseBody
    @RequestMapping("/isSalesIdExist")
    public boolean isSalesIdExist(String esIndex,String salesName) {
    	return  esdFacade.isSalesIdExist(esIndex,salesName);
    }
	
	
}
